部署harbor私有镜像仓库及k3s离线部署集群 您所在的位置:网站首页 harbor离线安装 kubernetes 部署harbor私有镜像仓库及k3s离线部署集群

部署harbor私有镜像仓库及k3s离线部署集群

2024-03-17 05:54| 来源: 网络整理| 查看: 265

k3s安装文档:https://docs.k3s.io/zh/

根据官方文档中的内容,我们在部署k3s集群前,要确保拥有应该在我们的离线环境下可以访问的私有镜像仓库。

1.部署私有镜像仓库

1.1安装docker

使用官方安装脚本自动安装

安装命令如下:

Bash curl -fsSL https://test.docker.com -o test-docker.sh sudo sh test-docker.sh

1.2安装docker-compose

1.2.1下载

下载的是2.3.4的版本,harbor需要1.2.8以上的版本。

如果服务器网络无法下载,也可手动下载,然后上传服务器,并将文件夹修改为docker-compose

Bash curl -L "https://github.com/docker/compose/releases/download/2.3.4/docker-compose-$(uname -s)-$(uname -m)" -o/usr/local/bin/docker-compose

因为网络环境不是很好,恰好服务器上安装着python3,所以使用pip3进行下载

Bash python3 -m pip install --index-url https://mirrors.aliyun.com/pypi/simple/  --trusted-host mirrors.aliyun.com docker-compose

1.2.2添加可执行权限

Bash chmod docker-compose 

1.2.3测试

Bash mv docker-compose /usr/local/bin/  #下载的是二进制文件,移动到这个目录下面 docker-compose --version

1.3安装harbor

1.3.1下载

直接从服务器下载离线安装包,网络不好的可以下载后传入服务器。

Bash wget https://github.com/goharbor/harbor/releases/download/v2.6.1/harbor-offline-installer-v2.6.1.tgz

1.3.2解压

Bash tar -zxvf harbor-offline-installer-v2.6.1.tgz

1.3.3修改配置文件

Bash cd harbor cp harbor.yml.tmpl harbor.yml vi harbor.yml

1.3.4安装

Bash ./install.sh docker-compose down -v  #停止harbor docker-compose up -d  #启动harbor

1.3.5登录验证

2.部署k3s集群

2.1先决条件

在安装 K3s 之前,完成上面的私有镜像仓库或手动部署镜像操作,预填充 K3s 需要安装的镜像。 从 Releases 页面下载 K3s 二进制文件,该文件需要匹配用于获取离线镜像的版本。将二进制文件放在每个离线节点上的 /usr/local/bin 中,并确保文件是可执行的。 在 get.k3s.io 下载 K3s 安装脚本。将安装脚本放在每个离线节点上的任何位置,并将其命名为 install.sh。

需要下载的文件包括:k3s二进制文件:k3s.bin,K3s 安装脚本:k3s-install.sh,K3s 需要安装的镜像:k3s-airgap-images-amd64.tar。

2.2在离线环境中安装 K3s

2.2.1镜像仓库配置文件(引用官方文档的内容)

该文件由两个主要部分组成:

mirrors configs

Mirrors

Mirrors 是用于定义私有镜像仓库名称和端点的指令,例如:

Bash mirrors:   mycustomreg.com:     endpoint:       - "https://mycustomreg.com:5000" 

每个 mirror 都必须有一个名称和一组端点。从镜像仓库中拉取镜像时,containerd 会逐个尝试这些端点 URL,并使用第一个有效的 URL。

重定向

如果将公共镜像仓库用作 Mirror,例如在配置通过缓存拉取时,镜像拉取将被透明地重定向。

例如,如果你为 docker.io 配置了一个 Mirror:

Bash mirrors:   docker.io:     endpoint:       - "https://mycustomreg.com:5000"

然后,拉取 docker.io/rancher/coredns-coredns:1.6.3 将透明地从 https://mycustomreg.com:5000/rancher/coredns-coredns:1.6.3 拉取镜像。

Configs

configs 部分定义了每个 mirror 的 TLS 和凭证配置。对于每个 mirror,你可以定义 auth 和/或 tls。

tls 部分包括:

指令

描述

cert_file

客户端证书路径,用于向镜像仓库进行身份验证

key_file

客户端密钥路径,用于向镜像仓库进行身份验证

ca_file

定义用于验证镜像仓库服务器证书文件的 CA 证书路径

insecure_skip_verify

定义是否应跳过镜像仓库的 TLS 验证的布尔值

auth 部分由用户名/密码或身份验证令牌组成:

指令

描述

username

私有镜像仓库基本身份验证的用户名

password

私有镜像仓库基本身份验证的用户密码

auth

私有镜像仓库基本身份验证的身份验证令牌

总结

根据上面的配置总结如下:

Bash # vim registries.yaml mirrors:   docker.io:     endpoint:       - "http://mycustomreg.com:5000"  #因为没有使用https协议,使用直接写http就行。 #因为harbor仓库的镜像都是公开的,使用不需要重新定向。 configs:   "mycustomreg.com:5000":     auth:       username: # this is the registry username       password:  # this is the registry password

2.2.2安装主节点

Bash mkdir -p /etc/rancher/k3s #创建目录 mv registries.yaml /etc/rancher/k3s  #指定镜像仓库 chmond +x k3s.bin  #添加可执行权限 mv k3s.bin k3s  #修改二进制文件名称 chmond +x k3s-install.sh  #添加可执行权限 mv k3s /usr/local/bin/ #把二进制文件放到指定目录下 INSTALL_K3S_SKIP_DOWNLOAD=true  INSTALL_k3s_EXEC="--node-taint k3s-controlplane=true:NoExecute"  ./k3s-install.sh  #运行安装文件 [INFO]  systemd: Starting k3s  #看到这个表示安装完成 kubectl get no #获取节点信息

Bash NAME      STATUS   ROLES                  AGE     VERSION ubuntu    Ready    control-plane,master   3h52m   v1.28.3-rc2+k3s2

2.2.3安装从节点

之前在部署从节点的时候遇的坑,安装完成后从节点无法使用kubectl命令行工具。

Bash cd /etc/rancher/k3s/  #进入主节点的路径 cp k3s.yaml config  #复制k3s主节点配置文件 cat /var/lib/rancher/k3s/server/token  #获取主节点token scp registries.yaml [email protected]:/etc/rancher/k3s  #将镜像仓库配置文件复制到从节点 mkdir /root/.kube/  #创建目录 scp config [email protected]:/root/  #将配置文件复制到从节点,配置环境变量 vim config  #将server: https:指定到主机点的IP地址 chmond +x k3s.bin  #添加可执行权限 mv k3s.bin k3s  #修改二进制文件名称 chmond +x k3s-install.sh  #添加可执行权限 mv k3s /usr/local/bin/ #把二进制文件放到指定目录下 INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://1.1.1.2:6443 K3S_TOKEN=K10925705c9ad2864f1c2c4d27d36e73bbe49cde9bdb8e6d9264d3f8696b0dcd4fc::server:ec9749dd126481de43c3f8ce51a9eef3 ./k3s-install.sh  #安装,指定主节点端口,已经之前的获取到的token

安装完成后

Bash kubectl get no  #获取节点信息

Bash NAME      STATUS   ROLES                  AGE     VERSION ubuntu2   Ready                     3h52m   v1.28.3-rc2+k3s2 ubuntu    Ready    control-plane,master   4h19m   v1.28.3-rc2+k3s2 #可以看到已经加入成功了。

2.2.4为从节点添加角色

Bash kubectl label nodes ubuntu1 node-role.kubernetes.io/worker=  #使用kubectl添加角色,然后再获取节点信息。 kubectl get no NAME      STATUS   ROLES                  AGE     VERSION ubuntu2   Ready    worker                 3h52m   v1.28.3-rc2+k3s2 ubuntu    Ready    control-plane,master   4h19m   v1.28.3-rc2+k3s2 #添加角色成功



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有